package 数组.扑克牌中的顺子;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

/**
 * @author: wh(1835734390 @ qq.com)
 * @date: 2023/3/22 15:36
 * @description:剑指offer
 * @version:
 */
public class Solution {
    public static void main(String[] args) {
        int[] array = {0,0,1,2,5};
        System.out.println(isStraight(array));
    }

    //官方解法
    public static boolean isStraight(int[] nums) {
        Set<Integer> repeat = new HashSet<>();
        int max = 0, min = 14;
        for(int num : nums) {
            if(num == 0) continue; // 跳过大小王
            max = Math.max(max, num); // 最大牌
            min = Math.min(min, num); // 最小牌
            if(repeat.contains(num)) return false; // 若有重复，提前返回 false
            repeat.add(num); // 添加此牌至 Set
        }
        return max - min < 5; // 最大牌 - 最小牌 < 5 则可构成顺子
    }
}
